﻿using SIR.Common;
using System.Collections.Generic;

namespace SIR.Entities.Interfaces
{
	/// <summary>
	/// Data associated to the image analysis process
	/// </summary>
	public interface IImageAnalysis : IEntity
	{
		/// <summary>
		/// Gets the identifier for the image
		/// </summary>
		long ImageId { get; }
		/// <summary>
		/// Gets the shortest average distance for all color spectrums
		/// </summary>
		double ShortestAverageDistance { get; }
		/// <summary>
		/// Gets the color spectrum definition Id associated to the shortest average distance
		/// </summary>
		long ColorSpectrumDefinitionId { get; }
		/// <summary>
		/// Gets the average hue for the image
		/// </summary>
		double AverageHue { get; }
		/// <summary>
		/// Gets the standard hue deviation for the image
		/// </summary>
		double StandardHueDeviation { get; }
		/// <summary>
		/// Gets the number of seconds that it took to analyze the image
		/// </summary>
		double AnalysisDuration { get; }
		/// <summary>
		/// Gets a list of the patterns associated to the image
		/// </summary>
		IReadOnlyCollection<IImagePattern> Patterns { get; }
		/// <summary>
		/// Gets a list of the color spectrums associated to the image analysis
		/// </summary>
		IReadOnlyCollection<IColorSpectrum> Spectrums { get; }
	}
}

